package com.seu.project.seuquiz.model.res;

import com.seu.project.seuquiz.model.entity.Contest;
import com.seu.project.seuquiz.model.entity.User;
import com.seu.project.seuquiz.model.entity.UserScoreMap;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author SoftPto
 * @createDate: 2023-08-08 22:05
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserContestMapRes {
    /**
     * id
     */
    private Long id;

    /**
     * 学号
     */
    private String studentId;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 竞赛名称
     */
    private String contestName;

    /**
     * 竞赛id
     */
    private String contestId;

    /**
     * 第几次做,只要创建了这条数据就默认为1了
     */
    private Integer times;

    /**
     * 用时
     */
    private Integer time;

    /**
     * 得分
     */
    private Integer score;

    /**
     * 创建时间（参赛时间）
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;


    public static UserContestMapRes toModel(UserScoreMap userScoreMap, Contest contest, User user) {
        return UserContestMapRes.builder()
                .id(userScoreMap.getId())
                .studentName(user.getUserName())
                .studentId(userScoreMap.getStudentId())
                .contestName(contest.getContestName())
                .contestId(userScoreMap.getContestId())
                .times(userScoreMap.getTimes())
                .time(userScoreMap.getTime())
                .score(userScoreMap.getScore())
                .createTime(userScoreMap.getCreateTime())
                .updateTime(userScoreMap.getUpdateTime())
                .build();
    }
}
